《Self-supervised Graph Learning for Recommendation》
用于推荐的 representation learning on user-item graph
已从使用单个 ID
或 interaction history
发展到利用高阶邻居。这导致了图卷积网络 (graph convolution networks: GCN
)在推荐领域的成功,例如 PinSage
和LightGCN
。尽管有效,但我们认为它们存在两个局限性:
(1)
:high-degree
节点对 representation learning
产生更大影响,从而降低 low-degree items
(长尾 items
)的推荐效果。
(2)
:representations
容易受到 noisy interactions
的影响,因为 neighborhood aggregation
方案进一步扩大了 observed edges
的影响。
在这项工作中,我们探索了 user-item graph
上的自监督学习,以提高 GCN
在推荐中的准确性和鲁棒性。这个想法是用辅助的自监督任务来补充经典的监督推荐任务,这通过 self-discrimination
来强化 node representation learning
。具体而言,我们生成一个节点的多个视图,最大化同一节点的不同视图的一致性(与其他节点的不同视图之间比较)。我们设计了三种算子来生成视图:node dropout
、edge dropout
和 random walk
,它们以不同的方式改变图结构。我们将这种新的学习范式称为自监督图学习 (Self-supervised Graph Learning : SGL
),并在 SOTA
的模型 LightGCN
上实现它。通过理论分析,我们发现 SGL
具有自动挖掘 hard negatives
的能力。在三个基准数据集上进行的实证研究证明了 SGL
的有效性,它提高了推荐准确率(尤其是长尾 items
的推荐准确率),以及对 interaction noises
的鲁棒性。我们的实现可在 https://github.com/wujcan/SGL
上找到。
从交互数据中学习高质量的 user and item representations
是协同推荐的核心。早期的矩阵分解(matrix factorization: MF
)等方法将每个用户(或 item
)的单一 ID
映射到一个 embedding
向量中。后续一些研究通过结合 interaction history
来丰富单一ID
,以学习更好的 representations
。最近,representation learning
已发展到利用 user-item graph
中的高阶连接性(higher-order connectivity
)。该技术受图卷积网络(graph convolution network: GCN
)的启发,GCN
提供了一种端到端的方式,将 multi-hop neighbors
的信息集成到 node representation learning
中,并在推荐任务中取得了 SOTA
的性能。
尽管 GCN-based
的推荐模型取得了不错的效果,但它们仍存在一些局限性:
监督信号稀疏:大多数模型在监督学习范式下处理推荐任务,监督信号来自观察到的 user-item interactions
。然而,与整个 interactions
空间相比,观察到的 interactions
极其稀疏,不足以学到高质量的 representations
。
数据分布不均衡:观察到的 interactions
通常呈现幂律分布,长尾部分由缺乏监督信号的 low-degree items
组成。相比之下,high-degree items
在 neighborhood aggregation
和 supervised loss
中出现得更为频繁,对 representation learning
的影响更大。因此,GCN
容易偏向 high-degree items
,牺牲 low-degree (long-tail) items
的性能。
interactions
中的噪声:用户提供的大多数反馈是隐式的(例如点击、浏览),而非显式的(例如评分、喜欢 / 不喜欢)。因此,观察到的interactions
通常包含噪声,例如用户可能被误导点击某个 item
,但使用后发现并不感兴趣。GCN
中的 neighborhood aggregation
机制放大了 interactions
对 representation learning
的影响,使得学习过程更容易受到 interaction noises
的干扰。
在这项工作中,我们专注于在推荐任务中探索自监督学习(self-supervised learning: SSL
),以解决上述局限性。尽管自监督学习在计算机视觉和自然语言处理中已得到广泛应用,但在推荐领域的探索相对较少。其核心思想是设置一个辅助任务,从输入数据本身提取额外的信号,特别是通过利用 unlabeled data space
。例如:
BERT
会随机掩码句子中的一些 tokens
,把 prediction of the masked tokens
作为辅助任务,以此捕获 tokens
之间的依赖关系。
RotNet
随机旋转 labeled images
,在旋转后的图像上训练模型,以获得 improved representations
从而用于物体识别(object recognition
)或图像分类。
与监督学习相比,自监督学习允许我们通过对输入数据进行变换来利用 unlabeled data space
,从而在下游任务中取得显著改进 。
在这里,我们希望将自监督学习的优势引入 recommendation representation learning
中。由于推荐数据具有离散的且相互连接的特点,这与计算机视觉和自然语言处理任务有所不同。为了解决 GCN-based
的推荐模型的上述局限性,我们构建了一个辅助任务,即区分节点自身的 representation
。具体来说,它包含两个关键组件:
(1)
:数据增强,为每个节点生成多个视图。
(2)
:对比学习,最大化同一节点的不同视图之间的一致性,同时最小化与其他节点视图之间的一致性。
对于 user-item graph
上的 GCN
,图结构作为输入数据,在 representation learning
中起着至关重要的作用。从这个角度出发,通过改变图邻接矩阵(graph adjacency matrix
)来构建 "unlabeled" data space
是很自然的想法,为此我们开发了三种算子:node dropout
、edge dropout
和 random walk
,每个算子都有不同的原理。然后,我们在改变后的图结构上基于 GCN
进行对比学习。结果,自监督图学习(SGL
)通过探索节点之间的内部关系增强了 node representation learning
。
从概念上讲,我们的 SGL
在以下几个方面对现有的 GCN-based
的推荐模型进行了补充:
(1)
:node self-discrimination
提供了辅助监督信号,与仅从 observed interactions
中获得的经典的监督信号互补。
(2)
:augmentation
算子(尤其是 edge dropout
),通过有意减少 high-degree nodes
的影响,有助于减轻 degree biases
。
(3)
:针对不同局部结构和邻居的 multiple views for nodes
增强了模型对 interaction noises
的鲁棒性。
最后,我们对对比学习范式进行了理论分析,发现它具有挖掘 hard negative examples
的副作用,这不仅提高了性能,还加速了训练过程。
值得一提的是,我们的 SGL
是模型无关的,可以应用于任何包含 user and/or item embedding
的 graph-based model
。在这里,我们在简单而有效的 LightGCN
模型上实现了 SGL
。在三个基准数据集上的实验研究证明了 SGL
的有效性,它显著提高了推荐准确率,尤其是对 long-tail items
的推荐准确率,并增强了模型对 interaction noises
的鲁棒性。我们总结这项工作的贡献如下:
我们设计了一种新的学习范式 SGL
,将 node self-discrimination
作为自监督任务,为 representation learning
提供辅助信号。
除了减轻 degree bias
和提高对 interaction noises
的鲁棒性之外,我们从理论上证明了 SGL
本质上鼓励从 hard negatives
中学习,这一过程由 softmax
损失函数中的温度超参数控制。
我们在三个基准数据集上进行了广泛的实验,以证明 SGL
的优越性。
我们首先总结 GCN-based
协同过滤模型的常见范式。设 items
集合。设 observed interactions
,其中 item
items
,边集合 observed interactions
。
回顾 GCN
:GCN
的核心是在图上应用 neighborhood aggregation
方案,通过聚合邻居节点的 representations
来更新中心节点的 representation
:
其中:
node representations
,node representations
,ID embeddings
(可训练的参数)。
neighborhood aggregation
的参数,从向量层面来看更具解释性:
为了更新中心节点 representation
,它首先聚合其邻居 representations
,然后与自身在第 representation
相结合。对于 representations
编码了图中的
在获得 representations
后,可能会有一个 readout
函数 final representations
用于预测:
监督学习的损失:prediction layer
构建在 final representations
之上,以预测用户 item
为了优化模型参数,现有工作通常将该任务构建为一种监督学习任务,监督信号来自 observed interactions
(也是图 missing data
中选择负样本。
除了上述 point-wise learning
,另一种常见的选择是 pairwise
的 Bayesian Personalized Ranking: BPR
损失,它强制要求 observed interaction
的预测得分高于 unobserved interaction
:
其中:unobserved interactions
。在这项工作中,我们选择它作为主体的监督任务。
我们提出了自监督图学习(Self-supervised Graph Learning: SGL
)范式,它通过自监督学习增强了主体的监督任务。Figure 1
展示了 SGL
的工作流程。具体来说,自监督任务(也称为前置任务或辅助任务)是从输入数据的相关性中构建监督信号。
具体来说,我们介绍如何进行数据增强以生成多个 representation
视图,然后基于所生成的 representations
进行对比学习以构建辅助任务。 SSL
与经典 GCN
以多任务学习的方式相结合。 随后,我们从梯度层面对 SSL
进行理论分析,揭示其与 hard negative mining
的联系。 最后,我们分析了 SGL
的复杂性。
直接将计算机视觉和自然语言处理任务中采用的数据增强方法应用于 graph-based recommendation
是不可行的,这是由于其特定的特性:
(1)
:用户和 items
的特征是离散的,如 one-hot ID
和其他 categorical
的变量。因此,图像上的增强操作,如随机裁剪、旋转或模糊,并不适用。
(2)
:更重要的是,与计算机视觉和自然语言处理任务将每个数据实例视为孤立的不同,interaction graph
中的用户和 items
本质上是相互连接和依赖的。
因此,我们需要为 graph-based recommendation
量身定制新的增强算子(augmentation operators
)。
二部图是基于观察到的 user-item interactions
来构建的,因此包含协同过滤信号。具体来说:
一阶邻居直接描述了用户节点和 items
节点的特性,即用户的 historical items
(或 item
的 interacted users
)可以视为用户(或 item
)的 pre-existing
特征。
用户(或item
)的二阶邻居节点展示了行为相似的用户(或受众相似的 item
)。
此外,从用户到 item
的高阶路径反映了用户对该 item
的潜在兴趣。
毫无疑问,挖掘图结构中的固有模式有助于 representation learning
。因此,我们在图结构上设计了三种算子:node dropout
、edge dropout
和 random walk
,以创建节点的不同视图。这些算子可以统一表示为:
其中两个随机选择 augmentation operators
如下:
Node Dropout (ND)
:以概率
其中:masking vectors
,用于生成两个子图。这样,这种数据增强有望从不同 augmented views
中识别出有影响力的节点,并使 representation learning
对结构变化不那么敏感。
实验章节提到,
ND
是一种特殊类型的ED
:将选中节点的周围的所有边移除。并且实验发现:ND
的性能不如ED
。
Edge Dropout (ED)
:以 dropout rate
其中:masking vectors
。只有邻居内的部分连接对 node representations
有贡献。因此,将这两个子图耦合在一起旨在捕获节点局部结构的有用模式,并进一步使 representations
对 noisy interactions
更具鲁棒性。
Random Walk (RW)
:上述两种算子生成的子图在所有图卷积层(graph convolution layers
)中共享。为了探索更高的能力,我们考虑为不同层分配不同的子图。这可以看作是通过随机游走为每个节点构建一个单独的子图(见 Figure 2
的示例)。假设我们在每一层选择 edge dropout
(具有不同的比率或随机数种子),我们可以通过使 masking vector
对层敏感来公式化随机游走:
其中:masking vectors
。
为了简单起见,我们在每个 epoch
对图结构应用这些增强操作。也就是说,我们在新的 training epoch
开始时为每个节点生成两个不同的视图(对于随机游走,为每个节点在每一层生成两个不同的视图)。注意,两个独立过程(即
更复杂的操作是:为每个
training batch
生成不同的视图。更简单的操作是:生成一组视图,然后在整个训练过程中(跨所有
epoch
)共享。注意:根据论文的实验章节描述,不能混合这三种数据增强操作。也就是说,在整个训练过程中,要么选择
ND
、要么选择ED
、要么选择RW
。
在建立了节点的 augmented views
之后,我们将同一节点的不同视图视为 positive pairs
(即 negative pairs
(即
positive pairs
的 auxiliary supervision
鼓励同一节点的不同视图在预测时的一致性。
而 negative pairs
的 auxiliary supervision
则强制不同节点之间的差异。
正式地,我们遵循 SimCLR
并采用对比损失(即, InfoNCE
)以最大化 positive pairs
的一致性并最小化 negative pairs
的一致性:
其中:
softmax
中称为温度。
类似地,我们得到 item
侧的对比损失
实验章节表明:可以采用
in-batch
负样本来代替全局负样本,这会带来性能的略微下降。
为了通过自监督学习任务改进 recommendation
,我们采用多任务训练策略,联合优化经典推荐任务(即,
其中:
L2
正则化的强度。
我们还考虑了交替优化:先在
实验章节表明:“预训练 --> 微调” 的方式能够带来增益,但是效果不如联合训练。
在本节中,我们对 SGL
进行深入分析,旨在回答以下问题:推荐模型如何从自监督学习任务中受益?为此,我们探究公式 hard negative mining
的固有能力,这为优化过程贡献了大且有意义的梯度,并指导 node representation learning
。接下来,我们逐步进行分析。
正式地,对于节点 representation
其中:
negative view
。
positive node
negative node
其中:normalized representations
。节点
之后,我们关注 negative node
由于
其中 positive node
negative node
representation similarity
。根据相似性,我们可以大致将 negative
节点分为两组:
(1)
:hard negative nodes
,它们的 representations
与 positive node
representation
相似(即,
(2)
:easy negative nodes
,它们的 representations
与 positive node
representation
不相似(即,
为了研究 hard negatives
和 easy negatives
的贡献,我们分别设置 Figure 3a
和 3b
所示。显然,在不同的条件下,negative
节点的贡献差异很大。具体来说:
如 Figure 3a
所示,当 hard
负样本还是 easy
负样本,对梯度的贡献相似。
相比之下,如 Figure 3b
所示,当设置 hard
负样本的 4000
,而 easy
负样本的贡献几乎为零。这表明 hard
负样本节点提供了更大的梯度来指导优化,从而使 node representations
更具区分性,并加速训练过程。
这些发现启发我们探究
此时
我们分别在 Figure 3c
和 3d
中展示 0.9
);此外,最具影响力的负节点的贡献呈超指数放大(即 SGL
自动执行 hard negative mining
。
即,通过选择一个较小的
,这使得 hard negative
样本的梯度呈现较大的贡献,即 “自动执行hard negative mining
”。实验章节表明:可以通过超参数调优来选择合适的
。
值得一提的是,我们的分析受到先前研究 《Supervised Contrastive Learning》
的启发,但存在主要差异:
(1)
: 《Supervised Contrastive Learning》
将 hard
负样本定义为与正样本相似度接近零的样本(即 easy
负样本定义为明显不相似的样本(即
(2)
它没有涉及的区域 softmax
中的温度超参数 hard
负样本中的关键作用。
在本小节中,我们以 Edge Dropout: ED
为策略、LightGCN
为推荐模型来分析 SGL
的复杂度;其他策略的分析方式类似。由于 SGL
不引入可训练参数,其空间复杂度与 LightGCN
相同。模型推理的时间复杂度也相同,因为模型结构没有变化。在以下部分,我们将分析 SGL
训练的时间复杂度。
假设 user-item interaction graph
中的节点数和边数分别为 epochs
,batch
的大小,embedding
维度,GCN
层数,SGL-ED
的保留概率(keep probability
)。复杂度主要来自两个部分:
邻接矩阵的归一化:由于我们每个训练 epoch
生成两个独立的子图,考虑到完整训练图和两个子图的邻接矩阵中的非零元素数量分别为
评估自监督损失:在分析中我们仅考虑内积。如公式 InfoNCE
损失时,我们将所有其他用户节点视为负样本。在一个 batch
内,分子和分母的复杂度分别为 epoch
中,用户侧和 item
侧的总复杂度为
一种降低时间复杂度的替代方法是仅将 batch
内的用户(或 items
)视为负样本,这样总时间复杂度为
通常
因此 至少为 ,对于工业场景是不可行的。
我们在 Table 1
中总结了 LightGCN
和 SGL-ED
在训练时的时间复杂度。实际上,LightGCN
和 SGL-ED
的分析复杂度处于同一数量级,因为 SGL-ED
的复杂度增加只是对 LightGCN
复杂度的一个缩放。在实践中,以 Yelp2018
数据为例,SGL-ED
(替代方法)的时间复杂度约为LightGCN
的 3.7
倍,考虑到我们将在实验章节中展示的收敛速度的提升,这是完全可以接受的。测试平台是配备英特尔 i7 - 9700K CPU
、32GB
内存、以及英伟达 Titan RTX
显卡。在 Yelp2018
上,LightGCN
和 SGL-ED
(替代方法)每 epoch
的时间成本分别为 15.2
秒和 60.6
秒,这与复杂度分析结果一致。
这里时间成本差异不大的核心原因是:数据集太小。对于十亿级别的数据集,
SGL
的复杂度太高,难以承受。
为了证明 SGL
的优越性并揭示其有效性的原因,我们进行了广泛的实验,并回答以下研究问题:
RQ1
:与 SOTA
的协同过滤模型相比,SGL
在 top-K recommendation
方面表现如何?
RQ2
:在协同过滤中进行自监督学习有哪些好处?
RQ3
:不同的设置如何影响所提出的 SGL
的有效性?
数据集:我们在三个基准数据集上进行实验:Yelp2018
、Amazon - Book
和 Alibaba - iFashion
。
遵循 《LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation》
、《Neural Graph Collaborative Filtering》
,我们对 Yelp2018
和 Amazon - Book
使用相同的 10-core setting
。Alibaba - iFashion
数据集更为稀疏,我们从中随机抽取 30
万用户,并使用他们在时尚服装上的所有交互数据。
三个数据集的统计信息总结在 Table 2
中。
我们遵循《Neural Graph Collaborative Filtering》
中描述的相同策略,将交互数据按照 7 : 1 : 2
的比例划分为训练集、验证集和测试集。对于测试集中的用户,我们遵循 all-ranking
协议 (《Neural Graph Collaborative Filtering》
)来评估top-K
推荐性能,并报告平均 Recall@K
和 NDCG@K
,其中
这是按照
interactions
来划分的,而不是按照用户来划分的。
基线方法:我们将所提出的 SGL
与以下协同过滤模型进行比较:
NGCF
(《Neural Graph Collaborative Filtering》
):这是一种基于图的协同过滤方法,在很大程度上遵循标准的 GCN
。它在消息传递过程中额外将二阶 feature interaction
编码到 message
中。我们在建议的范围内调优正则化系数 GCN
层数。
LightGCN
:该方法设计了一种轻量级图卷积,以提高训练效率和 generation
能力。同样,我们调优 GCN
层数。
Mult-VAE
:这是一种基于变分自编码器(variational auto-encoder: VAE
)的 item-based
的协同过滤方法。它通过额外的 reconstruction
目标进行优化,这可以看作是自监督学习的一种特殊情况。我们遵循建议的模型设置,并调优 droupout rate
和
DNN + SSL
(《Self-supervised Learning for Deep Models in Recommendations》
):这是一种 SOTA
的基于自监督学习的推荐方法。以 DNN
作为 items
的编码器,它对 items
的 pre-existing features
采用两种增强算子:即,特征掩码(feature masking: FM
)和特征丢弃(feature dropout: FD
)。在我们没有 item feature
可用的情况下,我们将这些增强操作应用于 items
的 ID embeddings
。我们按照原始论文中的建议调优 DNN
架构(即层数和每层的神经元数量)。
我们舍弃了像 MF
、NeuMF
、GCMC
和 PinSage
等潜在的基线模型,因为先前的工作已经验证了这些基线模型的效果不佳。在 LightGCN
的基础上,我们实现了所提出的 SGL
的三个变体,分别命名为 SGL-ND
、SGL-ED
和 SGL-RW
,它们分别配备了 Node Dropout
、Edge Dropout
和 Random Walk
。
超参数设置:
为了进行公平比较,所有模型均从头开始训练,使用 Xavier
方法进行初始化。
模型由 Adam
优化器进行优化,学习率为 0.001
,batch size
为 2048
。
早停策略与 NGCF
和 LightGCN
相同。
所提出的 SGL
方法继承了共享超参数的最优值。对于SGL
特有的超参数,我们在 {0.005, 0.01, 0.05, 0.1, 0.5, 1.0}
、{0.1, 0.2, 0.5, 1.0}
和 {0, 0.1, 0.2, 0.3, 0.4 , 0.5}
范围内分别调优
与 LightGCN
的比较:Table 3
展示了 SGL
和 LightGCN
之间的结果比较。我们发现:
在大多数情况下,SGL
的三种实现方式在很大程度上优于 LightGCN
,这表明用自监督学习补充推荐任务的优越性。
在 SGL
系列中,SGL-ED
在 18
种情况中的 10
种情况下表现最佳,而 SGL-RW
在所有三个数据集上的表现也优于 SGL-ND
。我们将其归因于类似 edge dropout
的算子在捕获图结构中固有模式的能力。
此外,SGL-ED
在密度较高的数据集(Yelp2018
和 Amazon-Book
)上的性能优于 SGL-RW
,而在较稀疏的数据集(Alibaba - iFashion
)上略逊一筹。一个可能的原因是,在稀疏数据集中,Edget Dropout
更有可能阻碍 low-degree
节点(不活跃用户和不受欢迎的 items
)的连接,而随机游走可以在不同 layers
中恢复它们的连接,如 Figure 2
中节点
SGL-ND
比 SGL-ED
和 SGL-RW
相对不稳定。例如,在 Yelp2018
和 Amazon-Book
上,SGL-ED
和 SGL-RW
的结果随着层数的增加而提升,而 SGL-ND
呈现出不同的模式。Node Dropout
可以看作是 Edge Dropout
的一种特殊情况,它丢弃了少量节点周围的所有边。因此,丢弃 high-degree
节点会极大地改变图结构,从而影响 information aggregation
,并使训练不稳定
在 Amazon-Book
和 Alibaba-iFashion
上的改进比在 Yelp2018
上更为显著。这可能是由数据集的特性造成的。具体来说,在 Amazon-Book
和 Alibaba-iFashion
中,来自 user-item interactions
的监督信号过于稀疏,无法在 LightGCN
中指导representation learning
。受益于自监督任务,SGL
获得了辅助监督来帮助 representation learning
。
将模型深度从 1
增加到 3
能够提升 SGL
的性能。这表明利用自监督学习可以增强 GCN-based
的推荐模型的泛化能力。也就是说,不同节点之间的对比学习有望解决 node representations
的过平滑问题(oversmoothing issue
),进一步避免过拟合问题。
与 SOTA
模型的比较:在 Table 4
中,我们总结了与各种基线模型的性能比较。我们发现:
(1)
:SGL-ED
在所有指标上始终优于所有基线模型。这再次验证了结合自监督学习的合理性和有效性。
(2)
:LightGCN
的性能优于 NGCF
和 Mult-VAE
,这与 LightGCN
论文中的主张一致。Mult-VAE
在 Alibaba-iFashion
上的性能与 NGCF
和 LightGCN
相当,而在 Amazon-Book
上优于 NGCF
。
(3)
:DNN + SSL
是 Amazon-Book
上最强的基线模型,显示出自监督学习在推荐中的巨大潜力。令人惊讶的是,在其他数据集上,DNN + SSL
的表现比 SGL-ED
差得多。这表明直接在 ID embedding
上应用自监督学习可能不是最优的,比在 graph representation
应用自监督学习要差。
(4)
:此外,我们进行了显著性检验,SGL-ED
相对于最强基线模型的改进在所有六种情况下在统计上都是显著的。
在本节中,我们从三个维度研究SGL
的优势:长尾推荐、训练效率、对噪声的鲁棒性。由于篇幅有限,我们仅报告 SGL-ED
的结果,其他变体也有类似的观察结果。
长尾推荐:如引言所述,GNN-based
的推荐模型很容易受到长尾问题的影响。为了验证 SGL
是否有望解决这个问题,我们根据 items
的流行度将 items
分为十组,同时保持每组的 interactions
总数相同。GroupID
越大,items
的 degrees
越大。然后,我们将整个数据集的 Recall@20
指标分解为单个组的贡献,如下所示:
其中:top-K recommendation list
中的 items
、以及测试集中的 relevant items
(即,ground-truth
)。因此,Figure 4
中报告结果,发现:
LightGCN
倾向于推荐 high-degree items
,而使长尾 items
的曝光较少。具体来说,在三个数据集中,尽管第 10
组仅包含 item spaces
的 0.83%
、0.83%
和 0.22%
,但该组分别贡献了总 Recall
得分的 39.72%
、39.92%
和 51.92%
。这表明,由于 interaction
信号的稀疏,LightGCN
很难学习到长尾 items
的高质量 representations
。
我们的 SGL
在缓解这个问题方面显示出潜力:在三个数据集中,第 10
组的贡献分别下降到 36.27%
、29.15%
和 35.07%
。
结合 Table 3
和 Figure 4
进行分析,我们发现 SGL
的性能提升主要来自于对 sparse interactions
的 items
的准确推荐。这再次验证了 representation learning
从辅助监督中受益匪浅,从而能够比 LightGCN
更好地建立这些 items
的 representations
。
训练效率:自监督学习已在预训练自然语言模型和预训练图结构中证明了其优越性。因此,我们研究它对训练效率的影响。Figure 5
展示了 SGL-ED
和 LightGCN
在 Yelp2018
和 Amazon-Book
数据集上的训练曲线。随着训练 epochs
增加,上图显示 training loss
的变化,下图记录测试集上的性能变化。我们有以下发现:
显然,在 Yelp2018
和 Amazon-Book
数据集上,SGL
的收敛速度比 LightGCN
快得多。具体来说,SGL
在第 18 epochs
和第 16 epochs
达到最佳性能,而 LightGCN
在这两个数据集上分别需要 720 epochs
和 700 epochs
。这表明我们的 SGL
可以大大减少训练时间,同时取得显著的性能提升。我们将这种加速归因于两个因素:
(1)
:SGL
采用 InfoNCE loss
作为自监督学习目标,使模型能够从多个负样本中学习 representations
,而 LightGCN
中的 BPR loss
只使用一个负样本,限制了模型的感知范围。
(2)
:如前所述,通过适当设置 SGL
受益于动态的 hard negative mining
,hard
负样本提供有意义且更大的梯度来指导 optimization
。
另一个发现是,BPR loss
快速下降期的起点略晚于 Recall
快速上升期。这表明 BPR loss
和 ranking
任务之间存在差距。我们将在未来的工作中对这一现象进行深入研究。
对 Noisy Interactions
的鲁棒性:我们还进行实验来检验 SGL
对 noisy interactions
的鲁棒性。为此,我们在训练集中添加一定比例的对抗性的样本(即 5%
、10%
、15%
、20%
的 negative user-item interactions
)来污染训练集,同时保持测试集不变。Figure 6
展示了在 Yelp2018
和Amazon-Book
数据集上的结果。
显然,添加 noise data
会降低 SGL
和 LightGCN
的性能。然而,SGL
的性能下降幅度低于 LightGCN
;此外,随着噪声比例增加,两条性能下降曲线之间的差距变得更加明显。这表明,通过比较节点的不同增强的视图,SGL
能够找出有用的模式,特别是节点的 informative
的图结构,并减少对某些边的依赖。简而言之,SGL
为消除推荐中 false positive interactions
的噪声提供了不同的视角。
聚焦于 Amazon-Book
数据集,添加 20%
额外 noisy interactions
的 SGL
性能仍优于无噪声数据集上的LightGCN
。这进一步证明了 SGL
相对于 LightGCN
的优越性和鲁棒性。
我们发现 SGL
在 Yelp2018
数据集上更鲁棒。可能的原因是 Amazon-Book
数据集比 Yelp2018
稀疏得多,添加噪声数据对 Amazon-Book
图结构的影响比 Yelp2018
更大。
我们继续研究 SGL
中的不同设计。首先研究超参数 SGL
用作现有 graph-based
的推荐模型的预训练的潜力,最后研究自监督学习目标函数中负样本选择的影响。由于篇幅限制,我们省略了 iFashion
数据集上的结果,其趋势与 Yelp2018
和 Amazon-Book
数据集相似。
温度 hard negative mining
中起着关键作用。Figure 7
展示了模型性能随不同
我们可以观察到:
(1)
:增大 1.0
)会导致性能变差,且需要更多训练 epochs
才能收敛,这是因为难以区分 hard negatives
和easy negatives
。
(2)
:相反,将 0.1
)会损害模型性能,因为少量的 negatives
的梯度主导了优化过程,失去了在自监督学习目标中添加多个负样本的优势。
简而言之,我们建议在 0.1 - 1.0
范围内仔细调优
预训练的影响:上述实验已经证明了 SGL
的有效性,其中主体监督任务和自监督任务是联合优化的。这里我们想回答一个问题:推荐性能能从 pre-trained
模型中受益吗?为了实现这一目标,我们首先预训练自监督任务以获得模型参数,用这些参数初始化 LightGCN
,然后通过优化主体任务对模型进行微调。我们将这个变体称为 SGL-pre
,并在 Table 5
中展示其与 SGL
的比较结果。
显然,尽管 SGL-pre
在两个数据集上的性能都不如 SGL-ED
,但它的结果仍优于 LightGCN
(见Table 3
)。我们的自监督任务能够为 LightGCN
提供更好的初始化,这与先前研究(《A Simple Framework for Contrastive Learning of Visual Representations》
)中的观察结果一致。
然而,联合训练的更好性能表明,主体任务和辅助任务中的 representations
相互增强。
负样本的影响:此外,我们还研究了辅助任务中负样本选择的影响。考虑两个变体:
(1) SGL-ED-batch
:它区分节点类型,将一个 mini-batch
中的用户和 item
分别视为用户和 items
的 negative views
。
(2) SGL-ED-merge
:它将一个 mini-batch
中的节点视为负样本,不区分节点类型。
我们在 Table 5
中报告比较结果。
SGL-ED-batch
的性能优于 SGL-ED-merge
,这表明区分异质节点类型的必要性。
此外,SGL-ED-batch
与将整个 spaces of users and items
视为负样本的 SGL-ED
性能相当。这表明在 mini-batch
中训练自监督学习任务是一种有效的替代方法。